/*
 * Copyright (c) 2025 CAX Conversion Project
 */
package com.comac.ins.cax.service;

import com.comac.ins.cax.domain.CaxFileInfo;
import com.comac.ins.cax.domain.bo.CaxFileInfoBo;
import com.comac.ins.cax.domain.vo.CaxFileInfoVo;
import com.comac.ins.common.mybatis.core.page.PageQuery;
import com.comac.ins.common.mybatis.core.page.TableDataInfo;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * @author yk
 * @desc CAX转换文件service
 * @date 2024-06-19 11:00
 */
public interface ICaxFileInfoService {

    /**
     * 上传文件
     *
     * @param file 文件
     * @return CaxFileInfo
     */
    CaxFileInfo uploadFile(MultipartFile file,String type);

    /**
     * 下载文件
     *
     * @param response response
     * @param id       主键
     */
    void download(HttpServletResponse response, Long id);

    /**
     * 源文件信息导出
     * @param response
     * @param bo
     */
    void export(HttpServletResponse response,CaxFileInfoBo bo);

    /**
     * 批量上传文件
     *
     * @param file 文件
     * @return CaxFileInfo
     */
    List<CaxFileInfo> batchUploadFile(MultipartFile[] file,String type);

    /**
     * 查询文件信息
     *
     * @param id 主键
     * @return CaxFileInfo
     */
    CaxFileInfo queryById(Long id);

    /**
     * 分页查询文件信息
     * @param bo
     * @return
     */
    TableDataInfo<CaxFileInfoVo> queryPageList(CaxFileInfoBo bo);

    /**
     * 文件记录逻辑删除
     * @param ids
     * @return
     */
    Boolean deleteBatchIds(List<Long> ids);
}
